输入:多视角多标签训练集数据( X t A X t B Y t ),测试集数据( X s A X s B ),

参数( λ 1 λ 2 m 1 m 2 ε )

输出: X s A X s B 的标签集 Y s

1:初始化: Q A = Q B = W A = W B = k = m 1 = m 2

2:for i = 1 , , k

3: q A = q B = 1 s t = 0

4:循环:

5: s t = s t + 1

6: q A ( 0 ) = q A q B ( 0 ) = q B

7: u A = X s A T q A u B = X s B T q B

8: w A = X t A u A w B = X t B u B

9:计算t: t A = X t A T w A t B = X t B T w B

10:t的标准化: t A = t A / t A T t A t B = t B / t B T t B

11:计算p: p A = X t A t A p B = X t B t B

12:根据公式(16)计算 q T ,并从 q T 得到 q A T q B T

13:直到满足( | q A q A ( 0 ) | ε & | q B q B ( 0 ) | ε )时停止循环

14:更新 Q A T Q B T W A W B

Q A T = [ Q A T , q A T ] Q B T = [ Q B T , q B T ]

W A = [ W A , w A ] W B = [ W B , w B ]

15:计算 X t Y t 的误差信息:

X t A = X t A t A p A T X t B = X t B t B p B T

X s A = X s A t A q A T X s B = X s B t B q B T

16:结束for循环

17:输出测试集数据的标签: Y s T = sgn ( 1 2 ( Y t T W A Q A T + Y t T W B Q B T ) )